
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
  <title>What is Grok?</title><meta name="description" content="Grok - now even cavemen can use Zope3" />
  <meta name="keywords" content="Grok, internet, zope, zope3, software, web apps, web applications, python" />
	<style type="text/css"><!-- @import url(resources/grok.css); --></style>
</head>

<body>
<div class="header">
	
	<a href="http://grok.zope.org">
	<img src="resources/grok-header.jpg" alt="GROK" /></a>
	<ul id="navigation">
        <li>
            <a href="/index.html" class="" title="Home">Home</a></li>
        <li>
            <a href="/about.html" class="" title="About">About</a></li>
        <li>
            <a href="/tutorial.html" class=""
               title="Tutorial">Tutorial</a></li>
        <li>
            <a href="/minitutorials/index.html" class=""
               title="How Tos">How Tos</a></li>
  </ul>
</div>


<div class="roundcont">
	
  <div class="roundtop">
    <img src="resources/corner-topleft.jpg" alt="" width="45" height="45" class="corner" style="display: none" />
  </div>

  <div class="content">

          <h1 class="title">What is Grok?</h1>
<img alt="Now even cavemen can use Zope3" class="right" src="./resources/evencaveman.jpg" />
<p>Grok is a web application framework for Python developers. It is aimed at both
beginners and very experienced web developers. Grok has an emphasis on agile
development. Grok is easy and powerful.</p>
<p>You will likely have heard about many different web frameworks for Python as
well as other languages. Why should you consider Grok?</p>
<ul class="simple">
<li>Grok offers a <em>lot</em> of building blocks for your web application.</li>
<li>Grok is informed by a <em>lot</em> of hard-earned wisdom.</li>
</ul>
<p>Grok accomplishes this by being based on <a class="reference" href="http://wiki.zope.org/zope3">Zope 3</a>, an advanced
object-oriented web framework. While Grok is based on Zope 3, and
benefits a lot from it, you do not need to know Zope at all in order
to get productive with Grok.</p>
<p><a class="reference" href="./about.html">Read More</a></p>
<div class="section">
<h2><a id="who-is-grok" name="who-is-grok">Who is Grok?</a></h2>
<img alt="Grok!" class="right" src="./resources/grok-standing.jpg" />
<p>Grok is a friendly caveman from the Stone Age. He has a big club that he hunts
mammoths with. He will also use this club to smash anything he doesn't like.</p>
<p>&quot;ME GROK SMASH ZCML!&quot;</p>
<p>The word grok comes from the novel <a class="reference" href="http://en.wikipedia.org/wiki/Stranger_in_a_Strange_Land">Stranger in a Strange Land</a> by Robert A.
Heinlein, and is defined in his book as:</p>
<blockquote>
Grok means to understand so thoroughly that the observer becomes part of the
observed - to merge, blend, intermarry, lose identity in group experience.</blockquote>
</div>
<div class="section">
<h2><a id="watch-grok-in-action" name="watch-grok-in-action">Watch Grok in Action</a></h2>
<ul class="simple">
<li><a class="reference" href="http://www.archive.org/details/grok_todo_part1">Simple ToDo</a> application is a tutorial-style introduction to Grok by Philipp von Weitershausen.</li>
<li><a class="reference" href="http://comlounge.tv/blog/archive/2007/02/11/cltv23-snow-sprint-2007-grok-presentation">Introduction to Grok</a> is a talk given by Philipp von Weitershausen to a group of Zope developers.</li>
</ul>
</div>
<div class="section">
<h2><a id="what-does-grok-code-look-like" name="what-does-grok-code-look-like">What does Grok code look like?</a></h2>
<pre class="literal-block">
import grok

class HelloWorld(grok.Application, grok.Model):
    pass

class Index(grok.View):
    pass

index = grok.PageTemplate(&quot;&quot;&quot;
    &lt;html&gt;&lt;body&gt;
        &lt;p&gt;ME GROK HELLO WORLD!&lt;/p&gt;
    &lt;/body&gt;&lt;/html&gt;
    &quot;&quot;&quot;&quot;)
</pre>
<ul class="simple">
<li><a class="reference" href="http://www.z3lab.org/sections/blogs/philipp-weitershausen/2007_01_09_you-thought-zope-3-wasn">Herd of Mammoths</a>: a very simple application that only goes a bit beyond &quot;hello world&quot;.</li>
<li><a class="reference" href="http://svn.zope.org/Grokstar/">Grokstar</a>: a simple blog application written with Grok.</li>
<li><a class="reference" href="http://svn.zope.org/grok/trunk/grokwiki/">Grok Wiki</a>: a simple wiki application written with Grok.</li>
<li><a class="reference" href="http://paleosoft.org/">Paleosoft.org</a>: a collection of sample apps written in Grok/Zope3 by
Luciano Ramalho as part of the Google Summer of Code.</li>
</ul>
</div>
<div class="section">
<h2><a id="me-grok-hyperlinks" name="me-grok-hyperlinks">ME GROK HYPERLINKS!</a></h2>
<ul class="simple">
<li>Get the latest version in the form of a <a class="reference" href="http://cheeseshop.python.org/pypi/grok">Grok Python Package</a> from the Python Cheese Shop.</li>
<li>Feature requests and bugs are tracked in the <a class="reference" href="https://launchpad.net/grok">Grok Issue Tracker</a> at LaunchPad.</li>
<li><a class="reference" href="http://mail.zope.org/mailman/listinfo/grok-dev">Grok-dev mailing list</a> for discussing the development of Grok.</li>
<li>There is a <a class="reference" href="irc://irc.freenode.net/grok">Grok IRC</a> channel on <a class="reference" href="http://freenode.net/">freenode.net</a></li>
</ul>
<p>The source code to Grok is kept in the Zope SVN repository. You can do an
anonymous check out of the latest version of Grok with the following command::</p>
<pre class="literal-block">
svn co svn://svn.zope.org/repos/main/grok/trunk grok
</pre>
</div>
<div class="section">
<h2><a id="me-grok-mini-tutorials" name="me-grok-mini-tutorials">ME GROK MINI-TUTORIALS!</a></h2>
<ul class="simple">
<li><a class="reference" href="minitutorials/searching.html">Newbie Search HowTo</a></li>
<li><a class="reference" href="minitutorials/macros.html">Newbie Macros HowTo</a></li>
</ul>
</div>
<div class="section">
<h2><a id="me-grok-sprints-and-blogs" name="me-grok-sprints-and-blogs">ME GROK SPRINTS AND BLOGS!</a></h2>
<p>Grok development is often done in the form of sprints. A sprint is a when a
group of developers get together in the same place and all work on a focused
set of tasks.</p>
<ul class="simple">
<li><a class="reference" href="http://faassen.n--tree.net/blog/view/weblog/2006/11/09/0">Martijn Faassen's blog entry</a> details the first Grok sprint.</li>
<li><a class="reference" href="http://jw.n--tree.net/blog/dev/python/second-grok-sprint">Jan-Wijbrand Kolman blogged</a> about the second Grok sprint, and <a class="reference" href="http://faassen.n--tree.net/blog/view/weblog/2007/01/09/0">Martijn Faassen
blogged</a> about it as well.</li>
</ul>
</div>

  </div>

  <div class="roundbottom">
     <img src="resources/corner-bottomleft.jpg" alt="" width="45" height="45" class="corner" style="display: none" />
  </div>

</div>

<div class="footer">
	
	<table><tr><td>
	Grok cooks around the campfire of <br />
	<a href="http://wiki.zope.org/zope3/FrontPage"><img src="resources/zopelogo.gif" alt="Zope" style="padding: 0.5em;" /></a>
	</td><td>
	 and roams free on the savannah of<br />
	<a href="http://www.python.org"><img src="resources/python-logo.gif" style="padding: 0.5em;" alt="Python" /></a>
	</td></tr>
	</table>

	<p>Hosting provided by <a href="http://quintagroup.com/"><b>Quintagroup</b></a></p>
</div>

</body>
</html>
